Conventional multi-port memory systems enable multiple devices to access a memory. A memory controller is typically used to arbitrate memory reads and writes of the devices to the memory, where each device connects to a different port of the conventional multi-port memory system. Additionally, each port of the conventional multi-port memory system operates at the same clock frequency to avoid situations where slower ports cause faster ports to be underserviced.
Although conventional multi-port memory systems were used in the past, they are unsuitable for use in a growing number of applications requiring reduced power consumption. Systems often save power by reducing clock frequencies to unused devices while other devices are allowed to operate at higher clock frequencies. However, this is not possible with conventional multi-port memory systems since all devices connected to conventional multi-port memory systems must operate at the same clock frequency.